package library.frame;

import library.logic.Journal;

import javax.swing.table.AbstractTableModel;
import java.util.Vector;

/**
 * User: RockCrazy
 * Date: 21.01.12
 * Time: 16:11
 */
public class JournalTableModel extends AbstractTableModel
{
	// Создаем хранилище для исполнителей
	private Vector journals;

	// Модель при создании получает список заданий
	public JournalTableModel(Vector journals)
	{
		this.journals = journals;
	}

	// Количество строк равно числу записей
	public int getRowCount()
	{
		if (journals != null)
		{
			return journals.size();
		}
		return 0;
	}

	// Количество столбцов - 14.Номер, Фамилия, Телефон
	public int getColumnCount()
	{
		return 6;
	}

	// Вернем наименование колонки
	public String getColumnName(int column)
	{
		String[] colNames = {"Номер записи", "ID книги", "ID читателя", "Дата выдачи", "Дата возврата", "Сдано"};
		return colNames[column];
	}

	// Возвращаем данные для определенной строки и столбца
	public Object getValueAt(int rowIndex, int columnIndex)
	{
		if (journals != null)
		{
			// Получаем из вектора журнала
			Journal journal = (Journal) journals.get(rowIndex);

			switch (columnIndex)
			{
				case 0:
					return journal.getJournalId();
				case 1:
					return journal.getBookId();
				case 2:
					return journal.getReaderId();
				case 3:
					return journal.getDateVidano();
				case 4:
					return journal.getDateVozvrat();
				case 5:
					return journal.isSdano();
			}
		}
		return null;
	}

	// Добавим метод, который возвращает задание по номеру строки
	// Это нам пригодится чуть позже
	public Journal getJournal(int rowIndex)
	{
		if (journals != null)
		{
			if (rowIndex < journals.size() && rowIndex >= 0)
			{
				return (Journal) journals.get(rowIndex);
			}
		}
		return null;
	}
}
